package com.chenchao.designer.single;

/**
 * @encoding : UTF-8
 * @Time : 2020/11/9 21:14
 * @Author : Chen Chao
 * @File : javaSE.com.chenchao.javadesigner.single.MyUtils.java
 * @Software : IntelliJ IDEA
 * @since : 1.8
 */
class  MyUtil{
    /**
     * 饿汉模式
     */
    int num;
    private final static MyUtil instance=new MyUtil();
    //直接创建对象且不允许修改
    private MyUtil(){}//私有化构造器，让外部无法创建
    public static MyUtil MyUtil(){
        return instance;
    }//给外面一个调用接口

}

/**
 * 懒汉模式
 */
class  MyTool{
    private static MyTool myTool=null;
    //不能写成final,因为一开始还没创建
    private MyTool() {
    }
    public static MyTool getMyTool(){
        if (MyTool.myTool==null){
            MyTool.myTool = new MyTool();
        }//用的是否再创建
        return MyTool.myTool;
    }//如果多线程可能会炸
}
public class MyUtils {
    public static void main(String[] args) {
        MyUtil myUtil1=MyUtil.MyUtil();
        MyUtil myUtil2=MyUtil.MyUtil();
        System.out.println(myUtil1 == myUtil2);
        //同一个对象，返回值当然为True
        MyTool myTool1=MyTool.getMyTool();
        MyTool myTool2=MyTool.getMyTool();
        System.out.println(myTool1 ==myTool2);
    }
}
